package com.sgzn.sgpay.web.entity;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Data
@ToString(exclude={"privMap"})
public class SgpayUser implements Serializable {
    private static final long serialVersionUID = 6949017343853112130L;
    /**
     * 用户ID（登录用户ID）
     */
    private String userId;
    /**
     * 用户名（登陆账号）
     */
    private String userCode;

    /**
     * 用户姓名
     */
    private String userName;

    /**
     * 客户号
     */
    private String custCode;

    /**
     * 客户名称
     */
    private String custName;

    private List<String> roleTypes;

    /**
     * 是否是超级管理员
     */
    private boolean isSuperAdmin = false;

    /**
     * 用户角色名称
     */
    private List<String> roles;

    private String roleIds;

    private String roleNames;

    /**
     * 权限列表
     */
    private List<String> privilegeList;

    /**
     * 登录IP
     */
    private String loginIp;

    /**
     * 真实IP地址
     */
    private String realLoginIp;
    /**
     * 用户角色级别
     */
    private Short userRoleClass;

    /**
     * 随机数
     */
    private String randomCode;

    /**
     * 密码是否安全
     */
    private Boolean isSafe;

    /**
     * 权限集合<权限ID，权限>
     */
    private Map<Long,SgpayPerPriv> privMap;

    /**
     * 权限所有的下级集合<父权限ID，权限子集>
     */
    private Map<Long,List<Long>> childrenPrivMap;

    /**
     * 层级Map<层次，权限集合>
     */
    private Map<Long,List<Long>> levelPrivMap;

    /**
     * 保存每个权限是否是父节点<权限ID,是否为父节点>
     */
    private Map<Long,Boolean> isParentPrivMap;

    /**
     * 权限编码Id映射集合
     */
    private Map<String,Long> pathCodeMap;
}

